C = g++
CFLAGS = -c -Wall -ansi -pedantic
LDFLAGS = `sdl-config --cflags --libs` -lSDL_ttf -lfreetype -lSDL
src = ./src/
lib = ./lib/
obj = ./obj/
bin = ./bin/Debug/

Case.o : $(src)Case.cpp $(lib)Case.hpp
	$(C) $(CFLAGS) -o $(obj)Case.o $(src)Case.cpp $(LDFLAGS)

Carte.o : $(src)Carte.cpp $(lib)Carte.hpp $(lib)Case.hpp
	$(C) $(CFLAGS) -o $(obj)Carte.o $(src)Carte.cpp $(LDFLAGS)

Coordonnes.o : $(src)Coordonnes.cpp $(lib)Coordonnes.hpp
	$(C) $(CFLAGS) -o $(obj)Coordonnes.o $(src)Coordonnes.cpp $(LDFLAGS)

Actions.o : $(src)Actions.cpp $(lib)Actions.hpp $(lib)Partie.hpp $(lib)Joueur.hpp $(lib)Unite.hpp $(lib)Ville.hpp $(lib)Coordonnes.hpp
	$(C) $(CFLAGS) -o $(obj)Actions.o $(src)Actions.cpp $(LDFLAGS)

Affichage.o : $(src)Affichage.cpp $(lib)Affichage.hpp $(lib)Carte.hpp $(lib)Case.hpp $(lib)Partie.hpp $(lib)Joueur.hpp $(lib)Unite.hpp $(lib)Ville.hpp $(lib)Coordonnes.hpp
	$(C) $(CFLAGS) -o $(obj)Affichage.o $(src)Affichage.cpp $(LDFLAGS)

IA.o : $(src)IA.cpp $(lib)IA.hpp $(lib)Partie.hpp $(lib)Joueur.hpp
	$(C) $(CFLAGS) -o $(obj)IA.o $(src)IA.cpp $(LDFLAGS)

Joueur.o : $(src)Joueur.cpp $(lib)Joueur.hpp $(lib)Unite.hpp $(lib)Ville.hpp
	$(C) $(CFLAGS) -o $(obj)Joueur.o $(src)Joueur.cpp $(LDFLAGS)

Menu.o : $(src)Menu.cpp $(lib)Menu.hpp $(lib)Partie.hpp
	$(C) $(CFLAGS) -o $(obj)Menu.o $(src)Menu.cpp $(LDFLAGS)

Partie.o : $(src)Partie.cpp $(lib)Partie.hpp $(lib)Carte.hpp $(lib)Joueur.hpp $(lib)Unite.hpp $(lib)Ville.hpp $(lib)Actions.hpp $(lib)Menu.hpp $(lib)Affichage.hpp
	$(C) $(CFLAGS) -o $(obj)Partie.o $(src)Partie.cpp $(LDFLAGS)

Unite.o : $(src)Unite.cpp $(lib)Unite.hpp $(lib)Joueur.hpp $(lib)Coordonnes.hpp $(lib)Partie.hpp
	$(C) $(CFLAGS) -o $(obj)Unite.o $(src)Unite.cpp $(LDFLAGS)

Ville.o : $(src)Ville.cpp $(lib)Ville.hpp $(lib)Joueur.hpp $(lib)Coordonnes.hpp $(lib)Partie.hpp $(lib)Unite.hpp
	$(C) $(CFLAGS) -o $(obj)Ville.o $(src)Ville.cpp $(LDFLAGS)


Main.o : $(src)Main.cpp $(lib)Menu.hpp
	$(C) $(CFLAGS) -o $(obj)Main.o $(src)Main.cpp $(LDFLAGS)

Main_test_reg.o : $(src)Main_test_reg.cpp $(lib)Menu.hpp $(lib)Partie.hpp $(lib)Ville.hpp $(lib)Carte.hpp $(lib)Case.hpp
	$(C) $(CFLAGS) -o $(obj)Main_test_reg.o $(src)Main_test_reg.cpp $(LDFLAGS)

Projet : Case.o Carte.o Main.o Actions.o Affichage.o Coordonnes.o IA.o Joueur.o Menu.o Partie.o Unite.o Ville.o
	$(C) -ggdb -o $(bin)Projet $(obj)Main.o $(obj)Actions.o $(obj)Affichage.o $(obj)Carte.o $(obj)Case.o $(obj)Coordonnes.o $(obj)IA.o $(obj)Joueur.o $(obj)Menu.o $(obj)Partie.o $(obj)Unite.o $(obj)Ville.o $(LDFLAGS)

Regression : Case.o Carte.o Main_test_reg.o Actions.o Affichage.o Coordonnes.o IA.o Joueur.o Menu.o Partie.o Unite.o Ville.o 
	$(C) -ggdb -o $(bin)Regression $(obj)Main_test_reg.o $(obj)Actions.o $(obj)Affichage.o $(obj)Carte.o $(obj)Case.o $(obj)Coordonnes.o $(obj)IA.o $(obj)Joueur.o $(obj)Menu.o $(obj)Partie.o $(obj)Unite.o $(obj)Ville.o $(LDFLAGS)

clean :
	rm $(obj)*.o
	rm $(bin)*
